package com.pig.window;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

import com.pig.util.CutImage;
import com.pig.util.OnceMusic;

public class StartMainFrame extends JFrame implements Runnable {

	private static final long serialVersionUID = 1L;

	/** 黑色背景画面 */
	Image back;

	/** 窗口下面展开的那个图片 */
	Image a;

	/** 窗口上面闪动的BRAVEPIG画面 */
	Image[] pigs = new Image[5];

	/** 虚拟画布 */
	Image offScreenImage;

	/** 虚拟画布的画笔 */
	Graphics offScreenDrawer;

	/** 新线程,控制画图 */
	Thread th = new Thread(this);

	/** 窗口宽度 */
	private final int FWIDTH = 800;

	/** 窗口高度 */
	private final int FHEIGHT = 600;

	/** 屏幕宽度 */
	int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;

	/** 屏幕高度 */
	int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;

	/** 背景音乐 */
	OnceMusic start;

	/** 向上的键 */
	int upKey;

	/** 向下的键 */
	int downKey;

	/** 发射的键 */
	int fireKey;

	/** 游戏难度 */
	int difficulty;

	public StartMainFrame() {

		CutImage ci = new CutImage();
		start = new OnceMusic("music/start.wav");
		start.play();

		this.setSize(FWIDTH, FHEIGHT);
		this.setLocation((screenWidth - FWIDTH) / 2,
				(screenHeight - FHEIGHT) / 2);
		this.setUndecorated(true);

		back = ci.getImage("images/back.JPG");
		a = ci.getImage("images/1.gif");

		pigs[0] = ci.getImage("images/pig1.gif");
		pigs[1] = ci.getImage("images/pig2.gif");
		pigs[2] = ci.getImage("images/pig3.gif");
		pigs[3] = ci.getImage("images/pig4.gif");
		pigs[4] = ci.getImage("images/pig5.gif");

		this.setVisible(true);

		/** 创建虚拟画布 */
		offScreenImage = this.createImage(FWIDTH, FHEIGHT);
		/** 画得虚拟画布的画笔 */
		offScreenDrawer = offScreenImage.getGraphics();

		th.start();
	}

	public int getKeys(String key) {
		return 0;
	}

	/** 启动画面下面的字母宽度 */
	int aWidth;

	/** 猪图片数组下标 */
	int i;

	/** 计时用的计数器 */
	int t = 1;

	public void paint(Graphics g) {
		if (null != offScreenDrawer) {
			/** 先将图片加载到虚拟画布 */
			offScreenDrawer.drawImage(back, 0, 0, null);
			offScreenDrawer.drawImage(a, 250, 400, aWidth, 100, null);
			offScreenDrawer.drawImage(pigs[i], 150, 100, 500, 200, null);
			/** 再将虚拟画布上的内容画到窗体上 */
			g.drawImage(offScreenImage, 0, 0, this);
		}
	}

	public void run() {
		while (true) {
			/** 先重画 */
			repaint();
			/** 重画一次下面图片宽度增加 */
			aWidth += 8;
			/** 重画一次换一张猪的图片 */
			i += 1;
			/** 当图片完全展开的时候，停止增加宽度 */
			if (aWidth >= 300) {
				aWidth = 300;
			}
			/** 当主的图片切换到左后一张的时候，从头开始 */
			if (i == 4) {
				i = 0;
			}

			/** 计时器 */
			t += 1;

			/** 线程休眠100毫秒 */
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

			/** 5秒过后，页面跳转 */
			if (t == 50) {
				start.stop();
				new LoginFrame();
				dispose();
			}
		}
	}

	public static void main(String[] args) {
		new StartMainFrame();
	}

}
